'use strict';

/* Filters */
// need load the moment.js to use this filter.
angular.module('app')
	.filter('fromNow', function () {
		return function (date) {
			return moment(date).fromNow();
		};
	})
	.filter('propsFilter', function () {
		return function (items, props) {
			var out = [];

			if (angular.isArray(items)) {
				items.forEach(function (item) {
					var itemMatches = false;

					var keys = Object.keys(props);
					for (var i = 0; i < keys.length; i++) {
						var prop = keys[i];
						var text = props[prop].toLowerCase();
						if (item[prop].toString().toLowerCase().indexOf(text) !== -1) {
							itemMatches = true;
							break;
						}
					}
					if (itemMatches) {
						out.push(item);
					}
				});
			} else {
				out = items;
			}
			return out;
		};
	}).filter('orderFilter', function () {
		return function (status) {
			switch (status) {
				case 1:
					return '待付款';
				case 2:
					return '支付中';
				case 3:
					return '已支付';
				case 4:
					return '已完成';
				case 5:
					return '已取消';
				case 6:
					return '订单超时';
				case 7:
					return '退款中';
				case 8:
					return '退款完成';
				case 9:
					return '退款失败';
				default:
					return '';
			}
		};
	}).filter('moduleFilter', function () {
		return function (moduleId) {
			switch (moduleId) {
				case 1:
					return '订票';
				case 2:
					return '城际约租';
				case 3:
					return '跨城巴士';
				case 4:
					return '小件快运';
				case 5:
					return '旅游度假';
				default:
					return '';
			}
		};
	}).filter('taskFilter', function () {
		return function (status) {
			switch (status) {
				case 1:
					return '已创建';
				case 2:
					return '已分配';
				case 3:
					return '进行中';
				case 4:
					return '已完成';
				case 5:
					return '被取消';
				case 6:
					return '已失败';
				case 7:
					return '已中止';
				case 8:
					return '未执行';
				default:
					return '';
			}
		};
	}).filter('paymentFilter', function () {
		return function (paytype) {
			switch (paytype) {
				case 1: return '支付宝';
				case 2: return '微信支付';
				case 3: return '微信公众号支付';
				default: return '';
			}
		};
	}).filter('defaultValue', function () {
		return function (inputValue, defaultValue) {
			if (angular.isUndefined(inputValue) || inputValue === '' || inputValue === null) return defaultValue;
			return inputValue;
		};
	}).filter('driverFilter', function () {
		return function (status) {
			switch (status) {
				case 0:
					return '未激活';
				case 1:
					return '已激活';
				case 2:
					return '暂停执行任务';
				case 3:
					return '黑名单中';
				case 4:
					return '执行任务中';
				default:
					return '';
			}
		};
	})
	.filter('busShiftFilter', function () {
		return function (status) {
			switch (status) {
				case 0:
					return '等待发布';
				case 1:
					return '等待报班';
				case 2:
					return '等待发班';
				case 3:
					return '运行中';
				case 4:
					return '已完成';
				case 5:
					return '晚点';
				case 6:
					return '塌班';
				case 7:
					return '被取消';
				default:
					return '';
			}
		};
	})
	;